package com.atguigu.lease.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
/*
* jackson json工具
* springboot整合jackson -> json 启动器:
* json启动器中提供了 注解 @JsonIgnore 作用：把在实体类中的属性转换成json属性时，设置忽略的字段
*
* */
@Data
public class BaseEntity implements Serializable {

    @Schema(description = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "创建时间")
    // fill = FieldFill.INSERT 意味着执行添加的sql语句时 自动为creat_time字段填充日期
    // 但是注解只有注解的功能 最终需要别人帮其“干活”
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    // json响应数据忽略这个字段
    @JsonIgnore
    private Date createTime;

    @Schema(description = "更新时间")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    @JsonIgnore
    private Date updateTime;

    @Schema(description = "逻辑删除")
    @TableField("is_deleted")
    @JsonIgnore
    // 添加逻辑删除注解
    @TableLogic // 删除为1 未删除为0
    private Byte isDeleted;

}